#include<stdio.h>
//11111111111111111111111100000000
//输出IP地址
//递归求阶层
int bin_dec(int x,int n)
{
	if(n==0)
	{
		return 1;
	}
	return x*bin_dec(x,n-1);
}
int main()
{
	int ip[4]={0};
	char a[33];
	int i;
	printf("请输入一个二进制数:\n");
	scanf("%s",a);
	//处理0~7位
	for(i=0;i<8;i++)
	{
		if(a[i]=='1')
		ip[0]+=bin_dec(2,7-i);//例如：11111111 i为7时n=7-7 为2^0=1 i=1 2*bin_dec(2,1-1)=2^1 
	}
	//处理8~15位
	for(i=8;i<16;i++)
	{
		if(a[i]=='1')
		ip[1]+=bin_dec(2,15-i);
	}
	for(i=16;i<24;i++)
	{
		if(a[i]=='1')
		ip[2]+=bin_dec(2,23-i);
	}
	for(i=24;i<32;i++)
	{
		if(a[i]=='1')
		ip[3]+=bin_dec(2,31-i);
		if(a[i]=='\0')
		break;
	}
	printf("IP:\n");
	printf("%d.%d.%d.%d",ip[0],ip[1],ip[2],ip[3]);

	return 0;
}